Job Title: Principal/lead Software Engineer & Software engineer
Location: New York NY 10175 (1 day on-site, On site once a week)
FTE Role
Why Are They Hiring-
- Just acquired new company and team. Need 3 more people to help rearchitect applications they acquired to their standard tech stack
Location-
- NYC, 1 day on-site, On site once a week
- 1 Principal position- Expectations are high on the architecture and design piece. SQL experience and NOSQL exposure are big plusses. Should have worked with distributed systems and large/big data sets. Would love to see Spark or Hadoop
- Software Engineer- Should have hands on Java coding, AWS cloud, and data base work with SQL. Back end focused.
Job summary
- Doesn’t need a specific front end, NodeJS needed
- This is 80/20 back end to Front end - Full stack work so front end is a solid plus.
- This is all API, back end big data processing work. Snowflake isn’t necessary, he would rather have any SQL data base, postgreSQL is good.
- AWS is preferred but can be azure or google.
Job Description
Principal Engineer (Lead Engineer) (10+ years of experience)
Responsibilities
- Architect and implement high-performance, low-latency event-driven systems for real-time applications, with a focus on scalability and fault tolerance.
- Design and optimize distributed architectures for complex event processing, ensuring sub-millisecond response times and high throughput.
- Lead the development of scalable microservices, integrating event sourcing and other patterns for data consistency and system resilience.
- Optimize runtime performance, including memory management, concurrency, and I/O operations, to meet stringent performance requirements.
- Design polyglot persistence solutions, balancing SQL and NoSQL technologies for efficient data storage and retrieval in high-volume environments.
- Implement real-time analytics and reporting systems, focusing on meaningful insights for business stakeholders and operational teams.
- Architect and develop machine learning pipelines for predictive algorithms, integrating them into real-time data flows.
- Design multi-region, globally distributed systems that ensure data consistency and low latency across geographies.
- Develop advanced monitoring, alerting, and observability solutions focusing on key performance indicators and business metrics.
- Architect data lake and data warehouse solutions for large-scale analytics on historical data, balancing performance, and cost-effectiveness.
- Lead the design and implementation of Infrastructure as Code practices, ensuring consistent and repeatable deployments across environments.
- Implement and optimize container orchestration strategies, ensuring efficient resource utilization and auto-scaling based on demand.
- Design and implement robust data governance and compliance solutions, addressing regulatory requirements in data-intensive systems.
- Develop advanced caching and data access strategies to minimize latency and improve system responsiveness.
- Conduct system design reviews and performance audits, providing actionable recommendations for improving scalability and efficiency.
- Mentor senior engineers and architects on advanced topics in distributed systems, event-driven architectures, and real-time data processing.
- Spearhead proof-of-concept projects for emerging technologies that could provide competitive advantages.
- Collaborate with product management to define the technical roadmap, aligning technology investments with business goals.
- Lead cross-functional efforts to continuously improve system reliability, including chaos engineering practices and disaster recovery simulations.
- Requirements
- Degree in Computer Science or related field, with 10+ years of software development experience, including 3+ years in architect-level roles.
- Strong command over at least one of Java, Python, or Go, with the ability to write high-performance, production-grade code.
- Proven expertise in designing and implementing large-scale, distributed event-driven systems with a focus on high performance and low latency.
- Extensive experience with real-time data processing, streaming architectures, and microservices design patterns.
- Strong background in database technologies (both SQL and NoSQL) and data modeling for high-volume, real-time applications.
- Demonstrated ability to architect and optimize globally distributed systems, including multi-region deployments and data consistency strategies.
- Proficiency in cloud technologies (such as AWS, Azure, or GCP) and experience with Big Data technologies (e.g., Hadoop ecosystem, Spark, Kafka).
- Strong leadership skills with a track record of mentoring senior engineers and driving technical vision for complex projects.
******************************************************
Software Engineer (5+ years of experience)
Responsibilities
- Develop and maintain components of high-performance, event-driven systems for real-time applications under the guidance of senior team members.
- Implement microservices using Java, Python, or Go, following established architectural patterns and best practices for scalability and resilience.
- Optimize code performance, focusing on efficient memory management, concurrency, and I/O operations to meet performance requirements.
- Work with both SQL and NoSQL databases to implement data storage and retrieval solutions for high-volume environments.
- Assist in the development of real-time analytics and reporting features, creating meaningful visualizations for stakeholders.
- Participate in the development of monitoring and alerting solutions, focusing on key performance indicators and system health metrics.
- Assist in implementing Infrastructure as Code practices, creating and maintaining scripts for consistent deployments.
- Contribute to container orchestration strategies, helping to implement efficient resource utilization and auto-scaling mechanisms.
- Implement caching strategies and optimize data access patterns to improve system responsiveness.
- Participate in code reviews, providing constructive feedback to peers and incorporating feedback to improve code quality.
- Assist in troubleshooting and resolving production issues, participating in on-call rotations as needed.
- Contribute to technical documentation, ensuring that system designs and implementations are well-documented.
- Participate in proof-of-concept projects, researching and implementing new technologies under guidance.
- Actively engage in team knowledge sharing sessions, presenting on learned topics and technologies.
Requirements
- Degree in Computer Science or related field.
- 5+ years of professional software development experience.
- Strong proficiency in at least one of Java, Python, or Go, with a focus on writing clean, maintainable code.
- Experience with microservices architecture and event-driven systems.
- Solid understanding of distributed systems concepts and challenges.
- Practical experience with both SQL and NoSQL databases.
- Familiarity with cloud platforms (AWS, Azure, or GCP) and containerization technologies (e.g., Docker).
- Basic understanding of big data technologies (e.g., Hadoop, Spark, or Kafka).
- Experience with version control systems (preferably Git) and CI/CD pipelines.
- Good problem-solving skills and ability to debug complex issues.
- Strong communication skills and ability to work effectively in a team environment.
- Eagerness to learn and adapt to new technologies and methodologies.
- Basic understanding of agile development practices.
A reasonable, good faith estimate of the minimum and maximum base salary for this position is $120K/Annum to $170K/Annum.